home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / DMPI.ZIP;1 / DPMI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-05  |  1.6 KB  |  47 lines

  1. /* DPMI.H, see PC Magazine, June 25, 1991 for article starting on page 371 */
  2.  
  3. #pragma pack(1)
  4.  
  5. typedef struct {
  6.     unsigned long edi, esi, ebp, reserved, ebx, edx, ecx, eax;
  7.     unsigned flags, es, ds, fs, gs, ip, cs, sp, ss;
  8.     } RMODE_CALL;
  9. /* structure of protected-mode descriptor */
  10. typedef struct {
  11.     unsigned limit, addr_lo;
  12.     unsigned char addr_hi, access, reserved, addr_xhi;
  13.     } DESCRIPTOR;
  14.  
  15. #define MAKEP(seg, ofs) ((void far *) MAKELONG((ofs), (seg)))
  16.  
  17. /* low-level DPMI functions */
  18. BOOL dpmi_present(void);
  19. void dpmi_version(unsigned *pmaj, unsigned *pmin,
  20.     unsigned *pflags, unsigned *pproc);
  21. BOOL dpmi_rmode_intr(unsigned intno, unsigned flags,
  22.     unsigned copywords, RMODE_CALL far *rmode_call);
  23. unsigned dpmi_sel(void);
  24. BOOL dpmi_set_descriptor(unsigned pmodesel, DESCRIPTOR far *d);
  25. BOOL dpmi_get_descriptor(unsigned pmodesel, DESCRIPTOR far *d);
  26. BOOL dpmi_sel_free(unsigned pmodesel);
  27.  
  28. /* higher layer on top of DPMI */
  29. unsigned DOSAllocRealSeg(DWORD bytes, unsigned *ppara, unsigned *psel);
  30. unsigned DOSFreeRealSeg(unsigned sel);
  31. unsigned DOSMapRealSeg(unsigned rmpara, DWORD size, unsigned far *psel);
  32. unsigned DOSFreeSeg(unsigned sel);
  33. void far *DOSProtToReal(void far *prot);
  34.  
  35. void far *map_real(void far *rptr, unsigned long size);
  36. void free_mapped_seg(void far *fp);
  37. unsigned get_mapped(void);
  38. // unsigned verw(unsigned sel);
  39.  
  40. /* undocumented Windows functions */
  41. extern DWORD FAR PASCAL GetSelectorBase(unsigned sel);
  42. extern DWORD FAR PASCAL GetSelectorLimit(unsigned sel);
  43. extern void FAR PASCAL SetSelectorBase(unsigned sel, DWORD base);
  44. extern void FAR PASCAL SetSelectorLimit(unsigned sel, DWORD limit);
  45.  
  46. /* end DPMI.H */
  47.